kafka安装配置 您所在的位置:网站首页 安装ServerProperties for LAN不生效 kafka安装配置

kafka安装配置

2024-07-07 23:52| 来源: 网络整理| 查看: 265

上传解压步骤省略 进入到kafka解压目录下的Config文件夹 修改配置文件:server.properties

vim server.properties

要点:

broker.id=0 // 此设置在master主机不必更改,但此值是唯一值,slave1和slave2中要该为1和2 其次该值可以改为1 对应的slave1和slave2为2、3,亦可以是2、3、4,只要不一样就可以delete.topic.enable=true该配置在2.X版本可能没有在Server.properties配置文件中没有写出,此配置为可以删除tipic,在1.X版本中为注释不生效状态,2.X版本中没有该项设置,可以添加。listeners=PLAINTEXT://:9092该配置为注释不生效状态,2.X版本请打开该选项,否则无法与其他两台从机中的kafka连接,该端口为监听端口。log.dirs=/usr/apps/tmp/kafka/logs该设置是已修改后的路径,默认应该在/tmp/kafka-logs文件夹中,该配置设置Kafka暂存文件或信息的位置,并不是log日志文件,因为Kafka生成的文件后缀名就是.log格式。zookeeper.connect=master:2181,slave1:2181,slave2:2181后面的:2181可以写,也可以不写,因为已经在/etc/hosts文件中配置了,Kafka会自主绑定端口 该文件夹下的zookeeper.properties中的dataDir=路径可以更改也可以不更改。

因为Kafka是以zookeeper为基础,所以要先启动zookeeper:

/usr/apps/kafka_2.11-2.0.0/bin/zookeeper-server-start.sh -deamon /usr/apps/kafka_2.11-2.0.0/config/zookeeper.properties

本文章中用到的为Kafka自带的zookeeper

说明:

zookeeper启动文件:zookeeper-server-start.sh-daemon:守护进程模式,也就是后台启动,如果不后台启动,则会是一个阻塞线程,即打开后就停在那里,不能关闭窗口,若关闭窗口则关闭进程【服务】zookeeper.properties配置文件

合并解释:启动zookeeper进程,后台启动,使用该配置启动

启动Kafka:

/usr/apps/kafka_2.11-2.0.0/bin/kafka-server-start.sh -daemon /usr/apps/kafka_2.11-2.0.0/config/server.properties

具体说明请以上方的说明为例

2021年11月8日更新 Kafka配置安装【内置zookeeper】 Kafka机制 • Kafka将消息以topic为单位进行归纳。 • 将向Kafka topic发布消息的程序成为producers. • 将预订topics并消费消息的程序成为consumer. • Kafka以集群的方式运行,可以由一个或多个服务组成,每个服务叫做一个broker. producers通过网络将消息发送到Kafka集群,集群向消费者提供消息,如下图所示

Kafka机制图

环境准备 Kafka版本:kafka_2.11-2.0.0.tgz三台主机:master、slave1、slave2【已在/etc/profile中作IP映射】 安裝配置工作 Kafka解压安装 [root@master ~]# tar -zxf /usr/tar/kafka_2.11-2.0.0.tgz -C /usr/apps/ 新建kafka的日志目录和zookeeper数据目录

这两项默认放在tmp目录,而tmp目录中内容会随重启而丢失,所以需要自定义目录

# 递归创建 [root@master ~]# mdkir -p /usr/apps/kafka_2.11-2.0.0/zkdata [root@master ~]# mdkir -p /usr/apps/kafka_2.11-2.0.0/kfkdata [root@master ~]# mdkir -p /usr/apps/kafka_2.11-2.0.0/log/zklog [root@master ~]# mdkir -p /usr/apps/kafka_2.11-2.0.0/log/kafka 配置zookeeper

在master中进行操作,配置完毕分发给两台机器

进到Kafka的config目录 [root@master kafka_2.11-2.0.0]# cd config/ 编辑zookeeper.properties文件 vim zookeeper.properties 内容如下 dataDir=/usr/apps/kafka_2.11-2.0.0/zkdata dataLogDir=/usr/apps/kafka_2.11-2.0.0/log/zklog # the port at which the clients will connect # 端口号 clientPort=2181 # disable the per-ip limit on the number of connections since this is a non-production config # 最大连接数 # maxClientCnxns=0 # zookeeper的基本单元时间,毫秒 tickTime=2000 # Leader-Follower初始通信时限 tickTime*10 initLimit=10 # Leader-Follower同步通信时限 tickTime*5 syncLimit=5 # 设置broker ID的服务地址 server.1=master:2888:3888 server.2=slave1:2888:3888 server.3=slave2:2888:3888 zookeeper数据目录添加myid配置

进入到目录:/usr/apps/kafka_2.11-2.0.0/zkdata

cd /usr/apps/kafka_2.11-2.0.0/zkdata # 创建并写入myid值 echo 1 > myid # master的myid的值为1,slave1的myid的值为2,slave2的myid的值为3 # 要和上方的server.1的1保持对应 Kafka配置 进入到config目录【命令省略】编辑配置文件server.properties [root@master config]# vim server.properties

三台服务器都要配置,其中的broker.id、listeners不一样,其他配置都一样

############################# Server Basics ############################# # The id of the broker. This must be set to a unique integer for each broker. # # broker 的全局唯一编号,不能重复 broker.id=0 ############################# Socket Server Settings ############################# # The address the socket server listens on. It will get the value returned from # java.net.InetAddress.getCanonicalHostName() if not configured. # FORMAT: # listeners = listener_name://host_name:port # EXAMPLE: # listeners = PLAINTEXT://your.host.name:9092 # 配置监听,修改为本机ip listeners=PLAINTEXT://master:9092 # broker的主机地址,若是设置了,那么会绑定到这个地址上,若是没有,会绑定到所有的接口上,并将其中之一发送到ZK,一般不设置 host.name=本机IP # 处理网络请求的线程数量,默认 num.network.threads=3 # 用来处理磁盘IO的线程数量,默认,理论上说应该大于你的磁盘数,此处保持默认 num.io.threads=8 # 发送套接字的缓冲区大小,默认 socket.send.buffer.bytes=102400 # 接收套接字的缓冲区大小,默认 socket.receive.buffer.bytes=102400 # 请求套接字的缓冲区大小,默认 socket.request.max.bytes=104857600 ############################# Log Basics ############################# # A comma separated list of directories under which to store log files # Kafka 运行日志【分区文件】存放路径 log.dirs=/usr/apps/kafka_2.11-2.0.0/kfkdata # topic 在当前broker上的分片个数,与broker保持一致 num.partitions=3 # 用来恢复和清理data下数据的线程数量,默认 num.recovery.threads.per.data.dir=1 ############################# Internal Topic Settings ############################# # 主题副本数,在非测试环境中,尽量大于1,保证可用性 offsets.topic.replication.factor=3 # 事务主题的复制因子(设置更高以确保可用性)。 内部主题创建将失败,直到群集大小满足此复制因素要求 transaction.state.log.replication.factor=3 # 覆盖事务主题的min.insync.replicas(副本写入保证)配置,在min.insync.replicas中,replicas数量为1,该参数将默认replicas定义为2 transaction.state.log.min.isr=2 ############################# Log Retention Policy ############################# # segment文件保留的最长时间,超时将被删除,默认 log.retention.hours=168 ############################# Zookeeper ############################# # 配置三台服务zookeeper连接地址 zookeeper.connect=master:2181,slave1:2181,slave2:2181 # Timeout in ms for connecting to zookeeper # 连接到ZK server的超时时间,没有配置就使用 zookeeper.session.timeout.ms zookeeper.connection.timeout.ms=6000 分发给其他两台从机【scp -r 命令,此处省略】修改zookeeper的myid文件修改Kafka的broker.id修改Kafka的监听地址listeners=PLAINTEXT://本机IP或IP映射名称:9092 启动

kafka启动时先启动zookeeper,再启动kafka;关闭时相反,先关闭kafka,再关闭zookeeper

进入到Kafka的bin目录启动zookeeper

因为zookeeper和Kafka启动时为阻塞进程,所以本篇文章使用后台守护进程-daemon启动

[root@master bin]# ./zookeeper-server-start.sh ../config/zookeeper.properties # 后台启动命令 [root@master bin]# ./zookeeper-server-start.sh -daemon ../config/zookeeper.properties

第一台zookeeper启动后,会一直报错,不用管,这是因为第二三台的机器没有启动,zookeeper连接不到,启动三台zookeeper后就正常了 当三台zookeeper没有完全启动时,报错【拒绝连接】为正常

启动Kafka [root@master bin]# ./kafka-server-start.sh ../config/server.properties # 后台启动命令 [root@master bin]# ./kafka-server-start.sh -daemon ../config/server.properties Kafka常见错误 Kafka启动后几秒后自动关闭 原因: 查看broker.id是否冲突 查看监听地址是否为本机地址【例如本机为slave1,则监听地址为listeners=PLAINTEXT://slave1:9092】 查看zookeeper是否启动,即QuorumPeerMain进程 查看防火墙是否关闭:systemctl status firewalld


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有